package com.mida.bms.report.mapper;

import com.mida.bms.report.entity.DocStructReport;
import com.mida.bms.report.vo.ExistedReportResult;
import com.mida.bms.report.vo.ReportSearchRequest;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface DocStructReportMapper {
    int deleteByPrimaryKey(Long stReportSoid);

    int insert(DocStructReport record);

    int insertSelective(DocStructReport record);

    DocStructReport selectByPrimaryKey(Long stReportSoid);

    int updateByPrimaryKeySelective(DocStructReport record);

    int updateByPrimaryKey(DocStructReport record);

    List<DocStructReport> getHistoryReportList(Map<String, Object> map) throws Exception;

    int queryCompletedReportsNumbers(@Param("employeeSoid") Long employeeSoid,@Param("completedCode") String completedCode);

    int queryWrittenReportsNumbers(@Param("employeeSoid")Long employeeSoid, @Param("writtenCode")String writtenCode);

    List<ExistedReportResult> selectExistedReport(List<Long> stReportSoidList);

    List<ExistedReportResult> selectReportStatus(List<Long> stReportSoidList);


    int updatePostponeStatus(Long stReportSoid);

    void updateByStReportSoid(DocStructReport docStructReport);

    String gainReportPdfByStReportSoid(ReportSearchRequest request) throws Exception;

    List<DocStructReport> gainHistoryReportList(Map<String, Object> map) throws Exception;
}